package org.scau.studentevaluation.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.scau.studentevaluation.config.global.log.WebLog;
import org.scau.studentevaluation.entity.query.StudentQuery;
import org.scau.studentevaluation.entity.vo.CheckTableVO;
import org.scau.studentevaluation.entity.vo.StudentVO;
import org.scau.studentevaluation.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @ClassName: StudentController
 * @Description: TODO
 * 【student模块】
 * 12. 获取学生信息(新增)
 * 	入参为college
 * 	通过college从student表中获取数据
 * 	select * from student where college =#{college}
 *
 * 13. 获取学生学年列表(原StudentController中的getStudentYearsList方法)
 * 	入参为StudentId
 * 	不与数据库交互
 *
 *
 * 14. 获取综测评分表(原StudentController中的getRewardTable方法)
 * 	入参为StudentQuery(原Student类)和int activityYear
 *
 * 	通过studentId、other_activity_year、is_passed从otheract中获取信息（通过feign调用other_act模块中获取其他活动2的方法）
 *
 * 	通过other_act_id从exam中获取信息（通过feign调用exam模块中查询exam信息的方法）
 *
 * 	通过college、ruleYear、passed从exam中获取actId（通过feign调用exam模块中查询actId的方法）
 *
 * 	通过actId、studentId从attendedstudentlist中获取actId（通过feign调用attendedstudentlist模块中判断指特定学生和活动的数据是否存在的方法）
 *
 * 	通过actId从act中获取act列表（通过feign调用act模块中获取Act的方法）
 *
 * 	通过actId从exam中获取exam列表（通过feign调用exam模块中获取Act的方法）
 *
 * @Author: sunslikes
 * @Date: 2020/8/27 18:27
 * @Version: 1.0
 */
@Slf4j
@RestController
@Api("Student控制器")
@WebLog("Student控制器")
public class StudentController {

    @Autowired
    private StudentService studentService;

    @ApiOperation("获取学院所有学生信息")
    @RequestMapping(value = "/list_students/{college}", method = RequestMethod.GET)
    public List<StudentVO> listSutdentsByCollege(String college) {
        return studentService.listStudentsByCollege(college);
    }

    @ApiOperation("获取学生学年列表")
    @RequestMapping(value = "/get_years/{studentId}", method = RequestMethod.GET)
    public List<Integer> listStudentYears(@PathVariable String studentId) {
        return studentService.listStudentYears(studentId);
    }

    @ApiOperation("获取综测评分表")
    @RequestMapping(value = "/get_rewardtable", method = RequestMethod.GET)
    public CheckTableVO getRewardTable(StudentQuery studentQuery,Integer activityYear) {
        return studentService.getRewardTable(studentQuery, activityYear);
    }

}
